#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMessageBox>
#include <QPushButton>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    //创建QMessageBox
    QMessageBox* messageBox = new QMessageBox(this);
    messageBox->setWindowTitle("这是对话框窗口标题");
    messageBox->setText("这是对话框的文本");
    messageBox->setIcon(QMessageBox::Warning);
    //对于标准按钮不可以连接信号槽，(按钮是messageBox自己生成的)
    messageBox->setStandardButtons(QMessageBox::Ok | QMessageBox::Save | QMessageBox::Cancel);

    //对于自定义的按钮还可以连接信号槽,针对当前按钮进行一些相关操作
    //QPushButton* button = new QPushButton("按钮",messageBox);
    //第二个参数是为按钮设置角色(作用)
    //messageBox->addButton(button,QMessageBox::AcceptRole);

    //非模态的弹窗,QMessageBox更多使用的是模态的对话框
    //messageBox->show();

    //模态的弹窗,当对话框被弹出时,代码会在exec()处阻塞,一直到对话框关闭
    //用户点击按钮,是对话框关闭,就能通过exec的返回值,知道用户点击那个按钮,从而执行一些对应的逻辑了
    int result = messageBox->exec();
    if(result == QMessageBox::Ok){
        qDebug()<<"OK";
    } else if (result == QMessageBox::Save){
        qDebug()<<"Save";
    } else if (result == QMessageBox::Cancel){
        qDebug()<<"Cancel";
    }

    //delete 对话框
    messageBox->setAttribute(Qt::WA_DeleteOnClose);
}
